package com.ctshk.rpc.order.scenic.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;


/**
 * <p>
 * 订单中心 - 景点门票详情
 * </p>
 *
 * @author 陈雷
 * @since 2021-03-11
 */
@Data
@ApiModel(value="订单中心景点门票详情DTO", description="订单中心景点门票详情DTO")
public class ScenicOrderDetailDTO implements Serializable {
    private static final long serialVersionUID = -6883304685096296110L;

    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;

    @ApiModelProperty(value = "销售方式 1：单品销售 2：打包销售")
    private Integer salesMethods;

    @ApiModelProperty(value = "付款状态 1 待付款 2 已付款 3 订单取消")
    private Integer paymentStatus;

    @ApiModelProperty(value = "预订状态 4 待确认 5 确认成功 6 确认失败")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "订单状态 1 待付款 2 待预订  3 预订成功  4 预订失败 5 已取消")
    private Integer orderStatus;

    @ApiModelProperty(value = "取消状态 1 审批中 2 审批成功 3 审批失败 4 已退款")
    private Integer cancelStatus;

    @ApiModelProperty(value = "产品类型 1 API产品 2 人工录入 3 外挂单")
    private Integer productType;

    @ApiModelProperty(value = "订单来源 1 人工录入 2 API接入")
    private Integer source;

    @ApiModelProperty(value = "销售")
    private String salesmanName;

    @ApiModelProperty(value = "姓名")
    private String contactName;

    @ApiModelProperty(value = "电话")
    private String contactMobile;

    @ApiModelProperty(value = "区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "备注信息")
    private String remark;

    @ApiModelProperty(value = "门票名称")
    private String name;

    @ApiModelProperty(value = "城市")
    private String cityName;

    @ApiModelProperty(value = "景点名称")
    private String scenicName;

    @ApiModelProperty(value = "门票类型 1电子票/2纸质票")
    private Integer ticketType;

    @ApiModelProperty(value = "使用方式 1 直接使用 2 兑换票")
    private Integer usageMode;

    @ApiModelProperty(value = "门票数量")
    private Integer productTicketNumber;

    @ApiModelProperty(value = "规格")
    private List<ScenicProductCostStrategySpecAttrDTO> scenicProductCostStrategySpecAttrDTOS;

    @ApiModelProperty(value = "总应收")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "已退款")
    private BigDecimal refundedAmount;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "下单类型(1:散客;2:代理下单;3:大客户)")
    private Integer orderType;

    @ApiModelProperty(value = "总实收")
    private BigDecimal realityAmount;

    @ApiModelProperty(value = "预订须知")
    private String customerNotice;

    @ApiModelProperty(value = "服务费(单服务费*门票数)")
    private BigDecimal serviceFee;

    @ApiModelProperty(value = "单张门票价格")
    private BigDecimal singleTicketFee;

    @ApiModelProperty(value = "出票方式(1 门店出票 2 后台产品出票)")
    private Integer ticketMode;

    @ApiModelProperty(value = "取消原因")
    private String refundReason;
}
